#include <main.h>
#include <float.h>

int	main(int argc, char *argv[])
{
	int 			nb_fourmis = 15 ;
	int 			nb_villes ;/*nombre de villes dans le graphe G*/
	int				i ;
	int				k ;
	int				l ;
	int				*meilleur_chemin ;
	const double 	epsilon = 0.00001 ;
	double 			alpha = 1 ;
	double 			beta = 2 ;
	double			cout_meilleur_chemin ;
	double			cout_chemin ;
	double			x_min ;
	double			y_min ;
	double			x_max ;
	double			y_max ;
	char 			*path ;
	File			browse ;
	x_min = 0 ;
	y_min = 0 ;
	x_max = 0 ;
	y_max = 0 ;
	browse = creer_file() ;
	cout_meilleur_chemin = DBL_MAX ;
	i = 0 ;
	printf("\nVeuillez entrer le nombre de fourmis :\n") ;
	scanf("%d", &nb_fourmis) ;
	printf("\n\n-----------------------------------------------------------\n\n") ;
	path = file_path(argc, argv) ;
	if (path == NULL)
	{
		return (0) ;
	}
	FILE *f ;
	f = fopen(path, "rt") ;
	if(f == NULL)
	{
		printf("\nUne erreur s'est produite lors de l'ouverture du fichier\n") ;
		return (0) ;
	}
	t_SOMMET* graphe ;
	graphe = NULL ;
	graphe = creation_graphe(f, graphe, &nb_villes, epsilon, &x_min, &y_min, &x_max, &y_max) ;
	fclose(f) ;
	
	t_FOURMI* tab_fourmis ;
	tab_fourmis = NULL ;
	tab_fourmis = init_fourmis(tab_fourmis, nb_fourmis, nb_villes) ;
	k = 0 ;
	srand(time(NULL)) ;
	
	meilleur_chemin = calloc(nb_villes, sizeof(*meilleur_chemin)) ;
	while(k < nb_fourmis)
	{
		i = 0 ;
		cout_chemin = 0 ;
		while(i < nb_villes - 1)
		{
			choix_ville(graphe[tab_fourmis[k].ville_courante], tab_fourmis + k, nb_villes, alpha, beta, &cout_chemin) ;
			i++ ;
		}
		k++ ;
	}
	/*Test*/
	int *stats ;
	stats = calloc(nb_villes, sizeof(*stats)) ;
	i = 0 ;
	k = 0 ;
	
	while (i < nb_fourmis)
	{
		printf ("\nFourmi n°%d :\n\nVille de départ :\t%d\nVille courante :\t%d\nVilles parcourues :\t", i, tab_fourmis[i].ville_depart, tab_fourmis[i].ville_courante) ;
		k = 0 ;
		while (k < nb_villes)
		{
			if (tab_fourmis[i].tabuk[k] != -1)
			printf("%d, ", tab_fourmis[i].tabuk[k]) ;
			k++ ;
		}
		printf ("\n\nSolution :\n") ;
		visualiser_file(tab_fourmis[i].solution) ;
		stats[tab_fourmis[i].ville_depart]++ ;
		printf("\n\n-----------------------------------------------------------\n\n") ;
		i++ ;
	}
	i = 0 ;
	printf("\n\n\nRépartition des fourmis sur l'ensemble des villes :\n\n") ;
	while(i < nb_villes)
	{
		printf ("Nombre de fourmis dans la ville %d :\t%d\n", i, stats[i]) ;
		i++ ;
	}
	/*Test*/
	return(0) ;
}
